<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>el与data的两种写法</title>
  <!-- 引入vue -->
  <script type="text/javascript" src="../js/vue.js"></script>
</head>

<body>
  <!-- 
    data与el的2种写法
      1.el有两种写法
        (1) new Vue的时候配置el属性
        (2) 先创建Vue实例，随后再通过vm.$mount("#root")
      2.data有两种写法
        (1) 对象式
        (2) 函数式
        如何选择：目前哪种写法都可以，以后学习到组件时，data必须使用函数式，否则会报错
      3.一个重要的原则
        由Vue管理的函数，一定不要写箭头函数，一旦写了箭头函数，this就不再是vue实例了(例如：data)
   -->
  <div id="root">
    <h1>你好,{{name}}</h1>
  </div>
</body>
<script type="text/javascript">
  Vue.config.productionTip = false;

  //el的两种写法
  // const v=new Vue({
  // //el:'#root',//第一种
  // data:{
  //   name:'wxc'
  // }
  // })
  // console.log(v);

  //延迟关联
  // setTimeout(()=>{
  //   v.$mount("#root");//第二种
  // },1000)

  //data的两种写法
  new Vue({
    el: '#root',
    //data的第一种写法：对象式
    // data:{
    //   name:'wxc'
    // }
    //data的第二种写法：函数式
    // data: function () {
    //   console.log("@@@", this)//此处的this是vue实例对象
    //   return {
    //     name: 'wxc'
    //   }
    // }
    //下面这种写法和上边一样
    data(){
      console.log("@@@",this)//此处的this是vm
      return{
        name:'wxc'
      }
    }

    //不能这样写
    // data:=>(){
    //   console.log("@@@",this)//此处的this是window
    //   return{
    //     name:'wxc'
    //   }
    // }
  })
</script>

</html>